#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;

int const maxn = 505 ;
int a[maxn][maxn];
int dp[maxn][maxn] ;
//dp[i][j]表示的是从位置(1,1)到位置(i,j)所获得的最大价值

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        memset(dp,0,sizeof(dp));
        for(int i = 1 ; i <= n ; i++)
        {
            for(int j = 1 ; j <= n ; j++)
            {
                scanf("%d",&a[i][j]);
            }
        }
        for(int i = 1 ; i <= n ; i++)
        {
            for(int j = 1 ; j <=n ; j++)
            {
                dp[i][j] = max(dp[i-1][j],dp[i][j-1])+a[i][j] ;
            }
        }
        printf("%d\n",dp[n][n]);
    }
    return 0;
}